// 知识点1：类值版本，类的构造函数需要可能需要动态分配其成员的副本

// 知识点2：类值版本，类的拷贝赋值运算符相当于结合了构造函数和析构函数的操作，首先销毁左侧运算对象的资源，再从右侧运算符对象拷贝资源，注意顺序

// 知识点3：由于有上述的顺序存在，所以我们必须保证这样的拷贝赋值运算符是正确的：首先将右侧运算对象拷贝到一个临时的对象中，再销毁左侧的运算对象的现有成员，之后将临时对象中的数据成员拷贝至左侧对象中(防范自赋值的情况发生—首先就销毁了自身的成员，再进行拷贝自身则会访问到已经释放的内存中)

// 见22题，编写时忘了一个析构函数，ps在构造函数中是动态分配的内存，所以需要进行delete
